2005年06月01日
川俣晶の縁側技術関連執筆情報 total 3472 count

Visual Basic 2005 ここが便利! 第5回 Usingステートメントで簡単、確実にファイルをクローズ

Written By: 川俣 晶連絡先

 下記の記事が公開されました。

リソース管理の重要性とJavaの死角 §

 Javaのリソース管理には「死角」があります。

 具体的に言えば、オブジェクトの寿命をガベージコレクタが管理するようになった結果として、オブジェクトが確保したリソース解放のタイミングもガベージコレクタ依存になってしまったと言うことです。特定のタイミングでの解放を強制したければ、try - finally構文を併用して、自前でそのためのコードを書かねばなりません。しかし、try - finally構文は、あくまで「あるブロックを抜け出す時に特定のコードを実行させる」という機能しか持たず、リソースを解放する特定のコードを書き間違えば、リソースは解放されません。

 このような機能的な制約は、それ以前のC++や、6.0までのVisual Basicには存在しなかったもので、Javaによって「退化」した機能性であると考えて良いと思います。

 さて、ここで語らねばならないのは、もちろんJavaの問題ではありません。

 実は、Javaが優れているという「誤った」風説が幅広く信じ込まれた結果としてVisual Basic.NET 2002/2003は、Javaと同等の欠陥を抱え込むことになってしまったのです。6.0までのVisual Basicには存在しなかった欠陥が、Javaを手本に追従する形で、Visual Basic.NETにも取り込まれてしまったのです。

 なんという悲劇!

 この問題は、C#ではusingステートメントとDisposeパターンの併用によって上手く回避されていましたから、Visual Basic.NETを応援する身としては辛いところがありました。

 しかし、Visual Basic 2005ではUsingステートメントが用意されたので、ようやく辛い思いをする必要がなくなりました。

 というわけで、一言。

頑張れVBプログラマ、君たちが使うVisual Basicは取り組む価値のある可能性に満ちたプログラム言語だ!